package com.qyl.sever_rpc.proxy.tem2;


//import com.qyl.sever_rpc.proxy.tem1.User;

import java.lang.reflect.Proxy;

public class Test {
    public static void main(String[] args) {

        try {
            User user = new User();
            user.setName("666");
            JdkProxy proxy1 = new JdkProxy<Person>(user);
            //创建代理对象,代理对象的每个执行方法都会替换执行Invocation中的invoke方法
            Person u2 = (Person) Proxy.newProxyInstance(
                    Person.class.getClassLoader(),
                    new Class<?>[]{Person.class},
                    proxy1);
            u2.eat();

            JdkProxy<Person> proxy2 = new JdkProxy<>(user);
            /**
             * 这里只能用接口,用  User u = proxy2.newProxy(); 会报错
             * */
            Person u = proxy2.newProxy();
            u.eat();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
